{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# [Python collections.Counter()用法](https://blog.csdn.net/qwe1257/article/details/83272340)"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "什么是collections\n",
    "`collections`在python官方文档中的解释是**High-performance container datatypes**，直接的中文翻译解释**高性能容量数据类型**。\n",
    "它总共包含五种数据类型：\n",
    "![image.png](attachment:image.png)\n",
    "其中Counter中文意思是计数器，也就是我们常用于统计的一种数据类型，在使用Counter之后可以让我们的代码更加简单易读。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Counter\n",
    "我们先看一个简单的例子："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:19:09.234778Z",
     "start_time": "2020-08-26T14:19:09.227485Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'red': 2, 'blue': 3, 'green': 1}\n"
     ]
    }
   ],
   "source": [
    "#统计词频\n",
    "colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']\n",
    "result = {}\n",
    "for color in colors:\n",
    "    if result.get(color)==None:\n",
    "        result[color]=1\n",
    "    else:\n",
    "        result[color]+=1\n",
    "print (result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面我们看用Counter怎么实现："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:20:07.331737Z",
     "start_time": "2020-08-26T14:20:07.325422Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'red': 2, 'blue': 3, 'green': 1}\n"
     ]
    }
   ],
   "source": [
    "from collections import Counter\n",
    "colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']\n",
    "c = Counter(colors)\n",
    "print (dict(c))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Counter操作\n",
    "可以创建一个空的Counter："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:24:38.151739Z",
     "start_time": "2020-08-26T14:24:38.147828Z"
    }
   },
   "outputs": [],
   "source": [
    "cnt = Counter()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:21:13.111358Z",
     "start_time": "2020-08-26T14:21:13.105115Z"
    }
   },
   "source": [
    "之后在空的Counter上进行一些操作。\n",
    "\n",
    "也可以创建的时候传进去一个迭代器（数组，字符串，字典等）："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:23:21.035405Z",
     "start_time": "2020-08-26T14:23:21.020161Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})\n",
      "Counter({'red': 4, 'blue': 2})\n",
      "Counter({'dogs': 8, 'cats': 4})\n"
     ]
    }
   ],
   "source": [
    "c1 = Counter('gallahad')                 # 传进字符串\n",
    "c2 = Counter({'red': 4, 'blue': 2})      # 传进字典\n",
    "c3 = Counter(cats=4, dogs=8)             # 传进元组\n",
    "\n",
    "print(c1)\n",
    "print(c2)\n",
    "print(c3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "判断是否包含某元素，可以转化为dict然后通过dict判断，Counter也带有函数可以判断："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:24:44.731614Z",
     "start_time": "2020-08-26T14:24:44.718500Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c = Counter(['eggs', 'ham'])\n",
    "c['bacon']  # 不存在就返回0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "删除元素："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:27:03.029182Z",
     "start_time": "2020-08-26T14:27:03.024411Z"
    }
   },
   "outputs": [],
   "source": [
    "c['sausage'] = 0  # counter entry with a zero count\n",
    "del c['sausage'] "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "获得所有元素："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:27:32.648554Z",
     "start_time": "2020-08-26T14:27:32.640554Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['a', 'a', 'a', 'a', 'b', 'b']"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c = Counter(a=4, b=2, c=0, d=-2)\n",
    "list(c.elements())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看最常见出现的k个元素："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:28:02.949352Z",
     "start_time": "2020-08-26T14:28:02.941657Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('a', 5), ('b', 2), ('r', 2)]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Counter('abracadabra').most_common(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Counter更新："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:29:31.104805Z",
     "start_time": "2020-08-26T14:29:31.096553Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Counter({'a': 4, 'b': 3})\n",
      "Counter({'a': 2})\n",
      "Counter({'a': 1, 'b': 1})\n",
      "Counter({'a': 3, 'b': 2})\n"
     ]
    }
   ],
   "source": [
    "c = Counter(a=3, b=1)\n",
    "d = Counter(a=1, b=2)\n",
    "\n",
    "print(c + d)                       # 相加\n",
    "\n",
    "print(c - d)                       # 相减，如果小于等于0，删去\n",
    "\n",
    "print(c & d)                       # 求最小\n",
    "\n",
    "print(c | d)                       # 求最大"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 例子\n",
    "例子：读文件统计词频并按照出现次数排序，文件是以空格隔开的单词的诸多句子："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:34:52.278486Z",
     "start_time": "2020-08-26T14:34:52.269173Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('the', 9), ('in', 4), ('to', 4), ('Python,', 3), ('List,', 3), ('a', 3), ('', 3), ('Beginner', 2), ('out', 2), ('values', 2)]\n"
     ]
    }
   ],
   "source": [
    "from collections import Counter\n",
    "lines = open(\"./data/input.txt\",\"r\").read().splitlines()\n",
    "lines = [lines[i].split(\" \") for i in range(len(lines))]\n",
    "words = []\n",
    "for line in lines:\n",
    "    words.extend(line)\n",
    "result = Counter(words)\n",
    "print (result.most_common(10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当需要统计的文件比较大，使用read()一次读不完的情况："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-26T14:35:59.722659Z",
     "start_time": "2020-08-26T14:35:59.713595Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('the', 9), ('in', 4), ('to', 4), ('Python,', 3), ('List,', 3), ('a', 3), ('', 3), ('Beginner', 2), ('out', 2), ('values', 2)]\n"
     ]
    }
   ],
   "source": [
    "from collections import Counter\n",
    "result = Counter()\n",
    "with open(\"./data/input.txt\",\"r\") as f:\n",
    "    while True:\n",
    "        lines = f.read(1024).splitlines()\n",
    "        if lines==[]:\n",
    "            break\n",
    "        lines = [lines[i].split(\" \") for i in range(len(lines))]\n",
    "        words = []\n",
    "        for line in lines:\n",
    "            words.extend(line)\n",
    "        tmp = Counter(words)\n",
    "        result+=tmp\n",
    "\n",
    "print (result.most_common(10))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
